<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="../../../style.css" type="text/css" media="screen">
<link rel="stylesheet" href="../../../print.css" type="text/css" media="print">
<meta content="XMLUtil,jp.raohmaru.utils.XMLUtil,exists,hasAttribute,hasNode,serialize,sortXml" name="keywords">
<title>jp.raohmaru.utils.XMLUtil</title>
</head>
<body>
<script type="text/javascript" language="javascript" src="../../../asdoc.js"></script><script type="text/javascript" language="javascript" src="../../../cookies.js"></script><script type="text/javascript" language="javascript">
<!--
				asdocTitle = 'XMLUtil - Raohmaru AS3 Framework';
				var baseRef = '../../../';
				window.onload = configPage;
			--></script>
<table style="display:none" id="titleTable" cellspacing="0" cellpadding="0" class="titleTable">
<tr>
<td align="left" class="titleTableTitle">Raohmaru AS3 

Framework</td><td align="right" class="titleTableTopNav"><a onclick="loadClassListFrame('../../../all-classes.html')" href="../../../package-summary.html">All&nbsp;Packages</a>&nbsp;|&nbsp;<a onclick="loadClassListFrame('../../../all-classes.html')" href="../../../class-summary.html">All&nbsp;Classes</a>&nbsp;|&nbsp;<a onclick="loadClassListFrame('../../../index-list.html')" href="../../../all-index-A.html">Index</a>&nbsp;|&nbsp;<a href="../../../index.html?jp/raohmaru/utils/XMLUtil.html&amp;jp/raohmaru/utils/class-list.html" id="framesLink1">Frames</a><a onclick="parent.location=document.location" href="" style="display:none" id="noFramesLink1">No&nbsp;Frames</a></td><td rowspan="3" align="right" class="titleTableLogo"><img alt="Adobe Logo" title="Adobe Logo" class="logoImage" src="../../../images/logo.jpg"></td>
</tr>
<tr class="titleTableRow2">
<td align="left" id="subTitle" class="titleTableSubTitle">Class&nbsp;XMLUtil</td><td align="right" id="subNav" class="titleTableSubNav"><a href="#methodSummary">Methods</a></td>
</tr>
<tr class="titleTableRow3">
<td colspan="2">&nbsp;</td>
</tr>
</table>
<script type="text/javascript" language="javascript">
<!--
if (!isEclipse() || window.name != ECLIPSE_FRAME_NAME) {titleBar_setSubTitle("Class XMLUtil"); titleBar_setSubNav(false,false,false,false,false,false,true,false,false,false,false,false,false,false);}
--></script>
<div class="MainContent">
<table cellspacing="0" cellpadding="0" class="classHeaderTable">
<tr>
<td class="classHeaderTableLabel">Package</td><td><a onclick="javascript:loadClassListFrame('class-list.html')" href="package-detail.html">jp.raohmaru.utils</a></td>
</tr>
<tr>
<td class="classHeaderTableLabel">Class</td><td class="classSignature">public class XMLUtil</td>
</tr>
</table>
<p></p>
 Conjunto de métodos que extienden la funcionalidad de la clase XML
 <p></p>
<br>
<hr>
</div>
<a name="methodSummary"></a>
<div class="summarySection">
<div class="summaryTableTitle">Public Methods</div>
<table id="summaryTableMethod" class="summaryTable " cellpadding="3" cellspacing="0">
<tr>
<th>&nbsp;</th><th colspan="2">Method</th><th class="summaryTableOwnerCol">Defined&nbsp;by</th>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol">
<div class="summarySignature">
<a class="signatureLink" href="#exists()">exists</a>(xml:Object):Boolean</div>
<div class="summaryTableDescription">[static]
  Comprueba si el objeto XML existe, es decir, si es un nodo real de un XML padre.</div>
</td><td class="summaryTableOwnerCol">XMLUtil</td>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol">
<div class="summarySignature">
<a class="signatureLink" href="#hasAttribute()">hasAttribute</a>(xml:Object, name:String):Boolean</div>
<div class="summaryTableDescription">[static]
  Comprueba si el objeto XML o XMLList contiene un atributo del nombre especificado.</div>
</td><td class="summaryTableOwnerCol">XMLUtil</td>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol">
<div class="summarySignature">
<a class="signatureLink" href="#hasNode()">hasNode</a>(xml:Object, name:String):Boolean</div>
<div class="summaryTableDescription">[static]
  Comprueba si el objeto XML o XMLList contiene un nodo del nombre especificado.</div>
</td><td class="summaryTableOwnerCol">XMLUtil</td>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol">
<div class="summarySignature">
<a class="signatureLink" href="#serialize()">serialize</a>(source:Object, rootNodeName:String, ns:Namespace = null):XML</div>
<div class="summaryTableDescription">[static]
  Serializa un objeto y devuelve un XML con las propiedades del objeto como pares nodo / valor.</div>
</td><td class="summaryTableOwnerCol">XMLUtil</td>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol">
<div class="summarySignature">
<a class="signatureLink" href="#sortXml()">sortXml</a>(xml:XML, childOrAttributeName:String, arraySortArgs:* = 0):XML</div>
<div class="summaryTableDescription">[static]
  Ordena los elementos secundarios del objeto XML según el valor de un nodo o de un atributo específico.</div>
</td><td class="summaryTableOwnerCol">XMLUtil</td>
</tr>
</table>
</div>
<script type="text/javascript" language="javascript">
<!--
showHideInherited();
--></script>
<div class="MainContent">
<a name="methodDetail"></a>
<div class="detailSectionHeader">Method detail</div>
<a name="exists()"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">exists</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">method</td>
</tr>
</table>
<div class="detailBody">
<code>public static function exists(xml:Object):Boolean</code><p>
  Comprueba si el objeto XML existe, es decir, si es un nodo real de un XML padre.
  </p><span class="label">Parameters</span>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="20px"></td><td><code><span class="label">xml</span>:Object</code> &mdash; Un objeto XML o XMLList.
  </td>
</tr>
</table>
<p></p>
<span class="label">Returns</span>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="20"></td><td><code>Boolean</code> &mdash; Un valor booleano, verdadero si lo existe y falso en caso contrario.
  </td>
</tr>
</table>
</div>
<a name="hasAttribute()"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">hasAttribute</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">method</td><td class="detailHeaderRule">&nbsp;</td>
</tr>
</table>
<div class="detailBody">
<code>public static function hasAttribute(xml:Object, name:String):Boolean</code><p>
  Comprueba si el objeto XML o XMLList contiene un atributo del nombre especificado.
  </p><span class="label">Parameters</span>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="20px"></td><td><code><span class="label">xml</span>:Object</code> &mdash; Un objeto XML o XMLList.
  </td>
</tr>
<tr>
<td class="paramSpacer">&nbsp;</td>
</tr>
<tr>
<td width="20px"></td><td><code><span class="label">name</span>:String</code> &mdash; El nombre del atributo.
  </td>
</tr>
</table>
<p></p>
<span class="label">Returns</span>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="20"></td><td><code>Boolean</code> &mdash; Un valor booleano, verdadero si lo contiene y falso en caso contrario.
  </td>
</tr>
</table>
</div>
<a name="hasNode()"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">hasNode</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">method</td><td class="detailHeaderRule">&nbsp;</td>
</tr>
</table>
<div class="detailBody">
<code>public static function hasNode(xml:Object, name:String):Boolean</code><p>
  Comprueba si el objeto XML o XMLList contiene un nodo del nombre especificado.
  </p><span class="label">Parameters</span>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="20px"></td><td><code><span class="label">xml</span>:Object</code> &mdash; Un objeto XML o XMLList.
  </td>
</tr>
<tr>
<td class="paramSpacer">&nbsp;</td>
</tr>
<tr>
<td width="20px"></td><td><code><span class="label">name</span>:String</code> &mdash; El nombre del nodo secundario.
  </td>
</tr>
</table>
<p></p>
<span class="label">Returns</span>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="20"></td><td><code>Boolean</code> &mdash; Un valor booleano, verdadero si lo contiene y falso en caso contrario.
  </td>
</tr>
</table>
</div>
<a name="serialize()"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">serialize</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">method</td><td class="detailHeaderRule">&nbsp;</td>
</tr>
</table>
<div class="detailBody">
<code>public static function serialize(source:Object, rootNodeName:String, ns:Namespace = null):XML</code><p>
  Serializa un objeto y devuelve un XML con las propiedades del objeto como pares nodo / valor.
  </p><span class="label">Parameters</span>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="20px"></td><td><code><span class="label">source</span>:Object</code> &mdash; Objeto origen a serializar
  </td>
</tr>
<tr>
<td class="paramSpacer">&nbsp;</td>
</tr>
<tr>
<td width="20px"></td><td><code><span class="label">rootNodeName</span>:String</code> &mdash; Nombre del nodo principal del XML resultante
  </td>
</tr>
<tr>
<td class="paramSpacer">&nbsp;</td>
</tr>
<tr>
<td width="20px"></td><td><code><span class="label">ns</span>:Namespace</code> (default = <code>null</code>)<code></code> &mdash; Un nombre de espacios a asignar al XML resultante
  </td>
</tr>
</table>
<p></p>
<span class="label">Returns</span>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="20"></td><td><code>XML</code> &mdash; Un objeto XML creado a partir del objeto especificado 
  </td>
</tr>
</table>
<br>
<span class="label">Example</span>
<br>El siguiente ejemplo muestra como se serializa un objeto que contiene otro objeto y una matriz:
 <div class='listing'><pre>
 import jp.raohmaru.utils.XMLUtil;
 
 var weapons :Object = {
  first : "sword",
  second : "bow",
  shield : false
 }
 var o :Object = {
  name : "Aloê",
  age : 55,
  status : "medium",
  pow : [100, 1290],
  weapons : weapons
 };
 
 var ns :Namespace = new Namespace("rol", "http://raohmaru.com/")
 var xml :XML = XMLUtil.serialize(o, "character", ns);
 
 trace( xml.toXMLString() );
 // Outputs:
 // &lt;rol:character xmlns:rol=&quot;http://raohmaru.com/&quot;&gt;
 //   &lt;rol:pow&gt;
 //     &lt;rol:0&gt;100&lt;/rol:0&gt;
 //     &lt;rol:1&gt;1290&lt;/rol:1&gt;
 //   &lt;/rol:pow&gt;
 //   &lt;rol:status&gt;medium&lt;/rol:status&gt;
 //   &lt;rol:weapons&gt;
 //     &lt;rol:second&gt;bow&lt;/rol:second&gt;
 //     &lt;rol:shield&gt;false&lt;/rol:shield&gt;
 //     &lt;rol:first&gt;sword&lt;/rol:first&gt;
 //   &lt;/rol:weapons&gt;
 //   &lt;rol:name&gt;Aloê&lt;/rol:name&gt;
 //   &lt;rol:age&gt;55&lt;/rol:age&gt;
 // &lt;/rol:character&gt;
 
 trace( xml.ns::status );  // medium
 </pre></div>
  <p></p>
</div>
<a name="sortXml()"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">sortXml</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">method</td><td class="detailHeaderRule">&nbsp;</td>
</tr>
</table>
<div class="detailBody">
<code>public static function sortXml(xml:XML, childOrAttributeName:String, arraySortArgs:* = 0):XML</code><p>
  Ordena los elementos secundarios del objeto XML según el valor de un nodo o de un atributo específico.
  </p><span class="label">Parameters</span>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="20px"></td><td><code><span class="label">xml</span>:XML</code> &mdash; Un objeto XML.
  </td>
</tr>
<tr>
<td class="paramSpacer">&nbsp;</td>
</tr>
<tr>
<td width="20px"></td><td><code><span class="label">childOrAttributeName</span>:String</code> &mdash; Nombre de un elemento secundario o de un atributo, cuyos valores se utilizarán para ordenar los elementos secundarios del objeto XML.
  </td>
</tr>
<tr>
<td class="paramSpacer">&nbsp;</td>
</tr>
<tr>
<td width="20px"></td><td><code><span class="label">arraySortArgs</span>:*</code> (default = <code>0</code>)<code></code> &mdash; Uno o más números o nombres de constantes definidas, separados por el operador bitwise OR (|) (OR en modo bit) que cambian el comportamiento de la ordenación. Estos son los valores válidos:
<UL><LI><CODE>Array.CASEINSENSITIVE</CODE> o 1 </LI>
<LI><CODE>Array.DESCENDING</CODE> o 2 </LI>
<LI><CODE>Array.UNIQUESORT</CODE> o 4 </LI>
<LI><CODE>Array.RETURNINDEXEDARRAY</CODE> u 8 </LI>
<LI><CODE>Array.NUMERIC</CODE> o 16 </LI></UL>
  </td>
</tr>
</table>
<p></p>
<span class="label">Returns</span>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="20"></td><td><code>XML</code> &mdash; Un nuevo objeto XML ordenado.
  </td>
</tr>
</table>
<p>
<span class="label">See also</span>
</p>
<div class="seeAlso">Array.sortOn()</div>
<br>
<span class="label">Example</span>
<br>El siguiente ejemplo muestra como se ordenan los elementos secundarios de un objeto XML utilizando <code>XMLUtil.sortXml</code>:
<div class='listing'><pre>
import jp.raohmaru.utils.XMLUtil;

var xml :XML = &lt;root&gt;
 &lt;row order="5" state="a"&gt;
  &lt;Puntuacion&gt;28&lt;/Puntuacion&gt;
 &lt;/row&gt;
 &lt;row order="2" state="h"&gt;
  &lt;Puntuacion&gt;0&lt;/Puntuacion&gt;
 &lt;/row&gt;
 &lt;row order="56" state="c"&gt;
  &lt;Puntuacion&gt;50&lt;/Puntuacion&gt;
 &lt;/row&gt;
 &lt;row order="111" state="z"&gt;
  &lt;Puntuacion&gt;122&lt;/Puntuacion&gt;
 &lt;/row&gt;
&lt;/root&gt;;

// Ordena os elementos secundarios del objeto XML según el elemento &lt;Puntuacion&gt;
trace( XMLUtil.sortXml(xml, "Puntuacion", Array.NUMERIC | Array.DESCENDING) );
// Ordena os elementos secundarios del objeto XML según el atributo "state"
trace( XMLUtil.sortXml(xml, "&#64;state",  Array.DESCENDING) );
</pre></div>
  <p></p>
</div>
<br>
<br>
<hr>
<br>
<p></p>
<center class="copyright">http://www.raohmaru.com</center>
</div>
</body>
</html>
<!--http://www.raohmaru.com-->
